#pragma once
#include "Shaders/LightAndMaterial/LightAndMaterialShader.h"
#include "Shaders/Texture/TextureShader.h"
#include "DirectXClass.h"
#include "../../Objects/Camera.h"
#include "../../Objects/Lights/Light.h"
#include "../../Objects/Lights/DirectionalLight.h"
#include "../../Objects/Lights/PointLight.h"
#include "../../Objects/Lights/SpotLight.h"
class Rendering
{
protected:
	DirectXClass* directXClass;
	Camera* camera;
	LightAndMaterialShader* m_lightAndMaterialShader;
	TextureShader* m_textureShader;
	ID3D11SamplerState* m_samplerState;
public:
	Rendering();
	~Rendering();
	void Initialize(int _screenWidth, int _screenHeight, HWND hwnd, bool _verticalSynchronizeEnabled, bool using4XMSAA, bool _fullScreen,float _screenDepth,float _screenNear,Camera* _camera);
	void Shutdown();
	void Update(std::vector<GameObject*>gameObjects,std::vector<DirectionalLight*>directionalLights,std::vector<PointLight*>pointLights,std::vector<SpotLight*>spotLights);
};